package com.ssy.lingxi.member.merchant.model.vo.lrc.request;

import com.ssy.lingxi.member.merchant.api.handler.annotation.MemberLevelTypeAnno;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;

/**
 * 新增会员等级接口参数
 * @author 万宁
 * @version 2.0.0
 * @date 2022-03-22
 */
public class MemberLevelVO implements Serializable {
    private static final long serialVersionUID = 5630281028205768890L;

    /**
     * 等级
     */
    @Positive(message = "会员等级要大于0")
    private Integer level;

    /**
     * 等级标签
     */
    @NotBlank(message = "等级标签不能为空")
    private String levelTag;

    /**
     * 等级类型枚举：1-平台会员，2-商户会员，3-渠道会员
     */
    @NotNull
    @MemberLevelTypeAnno
    private Integer levelType;

    /**
     * 升级分值标签
     */
    @NotBlank(message = "升级分值标签不能为空")
    @Size(max = 16, message = "升级分值标签最长16个字符")
    private String scoreTag;

    /**
     * 等级说明
     */
    @Size(max = 80, message = "等级说明最长80个字符")
    private String remark;

    /**
     * 角色Id列表
     */
    private List<Long> roleIds;

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public String getLevelTag() {
        return levelTag;
    }

    public void setLevelTag(String levelTag) {
        this.levelTag = levelTag;
    }

    public Integer getLevelType() {
        return levelType;
    }

    public void setLevelType(Integer levelType) {
        this.levelType = levelType;
    }

    public String getScoreTag() {
        return scoreTag;
    }

    public void setScoreTag(String scoreTag) {
        this.scoreTag = scoreTag;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<Long> getRoleIds() {
        return roleIds;
    }

    public void setRoleIds(List<Long> roleIds) {
        this.roleIds = roleIds;
    }
}
